gbfile: Check for an incomplete read.
authoroliskoli <oliskoli>
Sun, 17 Aug 2008 21:52:59 +0000 (21:52 +0000)
committeroliskoli <oliskoli>
Sun, 17 Aug 2008 21:52:59 +0000 (21:52 +0000)
gbfile.c

index 5a412df321cc688f707fa1fb04df6f4c2cc7da6b..925edd8489b56a839144121e1e2d28cd277c0edd 100644 (file)
--- a/gbfile.c
+++ b/gbfile.c
@@ -254,6 +254,11 @@ gbfread(void *buf, const gbsize_t size, const gbsize_t members, gbfile *file)
                        file->back = -1;
                }
                result += gzread(file->handle.gz, target, count);
+               
+               /* Check for an incomplete READ */
+               if ((members == 1) && (size > 1) && (result > 0) && (result < size))
+                       fatal("%s: Unexpected end of files (EOF)!\n", file->module);
+
                result /= size;
 
                if ((result < 0) || ((gbsize_t)result < members)) {